<?php

class EncuestasrespuestasController extends GxController {

    public function filters() {
        return array(
            'accessControl',
        );
    }

    public function actioncargamunicipios($id, $muni="0") {
        $campo="";
        $connection = Yii::app()->db;
        $command = $connection->createCommand("select MPOID, MPOMUNICIPIO FROM municipios WHERE DPT_ID=$id");
        $results = $command->queryAll();
        foreach ($results as $rows) {
            $valor = array_values($rows);
            if ($valor[0] == $muni)
                $campo .="<option value='$valor[0]' selected='selected'>$valor[1]</option>";
            else
                $campo .="<option value='$valor[0]'>$valor[1]</option>";
        }
        echo $campo;
    }

    public function actionguardarmodulosmultiples($id, $enr, $grp, $reg="") {
        $qry = "";
        $valcampo = "";
        $rowsafect = 0;
        $RegAct=0;
        if ($reg == "0")
            $RegAct = Yii::app()->db->createCommand("SELECT MAX(RESMREGISTRO) FROM RESPUESTASMULTIPLES WHERE ENR_ID=$enr AND GRP_ID=$grp")->queryScalar();
        else
            $RegAct = $reg;
        
        if ($RegAct == "" && $reg == "0")
            $RegAct = 0;

        $RegAct = $RegAct + 1;
        if (Yii::app()->browser->getBrowser()=="Internet Explorer")
           $rows = explode("°", trim(utf8_encode( $id ), '°'));
        else
           $rows = explode("°", trim( $id , '°'));
                
        $connection = Yii::app()->db;
        foreach ($rows as $results) {
            $cells = explode("|", $results);
            if ($cells[2] != "")
                $valcampo = "'" . trim($cells[2]) . "'";
            else
                $valcampo = "NULL";

            if ($cells[0] == "I")
                $qry = "INSERT INTO RESPUESTASMULTIPLES (RESMDESCRIPCIONMIN, RESMFECHACREACION, ENR_ID, ALS_ID, RESMREGISTRO, GRP_ID) VALUES ($valcampo, LOCALTIMESTAMP, $enr, $cells[1], $RegAct, $grp)";
            elseif ($cells[0] == "U")
                $qry = "UPDATE RESPUESTASMULTIPLES SET RESMDESCRIPCIONMIN='$cells[2]', RESMFECHAACTUALIZACION=LOCALTIMESTAMP WHERE ENR_ID=$enr AND ALS_ID=$cells[1] AND RESMREGISTRO=$reg AND GRP_ID=$grp";

            try {
                $command = $connection->createCommand($qry);
                $rowCount = $command->execute();
                if ($rowCount > 0) {
                    $rowsafect = $rowsafect + $rowCount;
                }
            } catch (Exception $e) {
                echo $e;
            }
        }
        if ($rowsafect > 0)
            echo "Guardado Correctamente";
    }

    public function actioneliminarmodulosmultiples($enr, $grp, $reg) {
        $connection = Yii::app()->db;
        $qry = "DELETE FROM RESPUESTASMULTIPLES WHERE ENR_ID=$enr AND RESMREGISTRO=$reg AND GRP_ID=$grp";
        try
        {
            $command =$connection->createCommand($qry);
            $rowCount=$command->execute();
        }
        catch(Exception $e)  //an exception is raised if a query fails
        {
            echo $e;
        }
        if($rowCount>0)
        echo "Eliminado Correctamente";
    }

    public function actionguardarmodulos($id, $enr, $mod) {
        $qry = "";
        $valcampo = "";
        $rowsafect = 0;
        if (Yii::app()->browser->getBrowser()=="Internet Explorer")
           $rows = explode("°", trim(utf8_encode( $id ), '°'));
        else
           $rows = explode("°", trim( $id , '°'));
        
        $connection = Yii::app()->db;
        foreach ($rows as $results) {
            $cells = explode("|", $results);
            if ($cells[2] != "")
                $valcampo = "'" . trim($cells[2]) . "'";
            else
                $valcampo = "NULL";

            if ($cells[0] == "I")
                $qry = "INSERT INTO RESPUESTAS (RESDESCRIPCIONMIN, RESFECHACREACION, ENR_ID, ALS_ID) VALUES ($valcampo, LOCALTIMESTAMP, $enr, $cells[1])";
            elseif ($cells[0] == "U")
                $qry = "UPDATE RESPUESTAS SET RESDESCRIPCIONMIN='$cells[2]', RESFECHAACTUALIZACION=LOCALTIMESTAMP WHERE ENR_ID=$enr AND ALS_ID=$cells[1]";
                
            try {
                $command = $connection->createCommand($qry);
                $rowCount = $command->execute();
                if ($rowCount > 0) {
                    $rowsafect = $rowsafect + $rowCount;
                }
            } catch (Exception $e) {  //an exception is raised if a query fails
                echo $e;
            }
        }

        if ($rowsafect > 0){
            try {
                $command = $connection->createCommand("INSERT INTO LOGS_ENCUESTAS (ENR_ID, FECHA_ACCESO, MOD_ID, UENC_ID ) VALUES ($enr, LOCALTIMESTAMP, $mod, ". Yii::app()->user->getState('Encuestado_Id') .")");
                $rowCount = $command->execute();
            } catch (Exception $e) {
                
            }
            echo "Guardado Correctamente";
        }
    }

    public function accessRules() {
        return array(
            array('allow',
                'actions' => array('index', 'view'),
                'users' => array('admin'),
            ),
            array('allow',
                'actions' => array('update', 'guardarmodulos', 'guardarmodulosmultiples', 'cargamunicipios', 'eliminarmodulosmultiples', 'consultaformulariosgrupos'),
                'users' => array('@'),
            ),
            array('allow',
                'actions' => array('minicreate', 'create'),
                'users' => array('admin'),
            ),
            array('allow',
                'actions' => array('admin', 'delete'),
                'users' => array('admin'),
            ),
            array('deny',
                'users' => array('*'),
            ),
        );
    }

    public function actionView($id) {
        $this->render('view', array(
            'model' => $this->loadModel($id, 'Encuestasrespuestas'),
        ));
    }

    public function actionCreate() {
        $model = new Encuestasrespuestas;

        $this->performAjaxValidation($model, 'encuestasrespuestas-form');

        if (isset($_POST['Encuestasrespuestas'])) {
            $model->setAttributes($_POST['Encuestasrespuestas']);

            if ($model->save()) {
                if (Yii::app()->getRequest()->getIsAjaxRequest())
                    Yii::app()->end();
                else
                    $this->redirect(array('view', 'id' => $model->ENRID));
            }
        }

        $this->render('create', array('model' => $model));
    }

    public function actionUpdate($id) {
        $username = Yii::app()->user->getId();
        $model = $this->loadModel($id, 'Encuestasrespuestas');
        if ($username !="admin")
            if( Yii::app()->db->createCommand("SELECT ENRID FROM ENCUESTASRESPUESTAS WHERE ENCU_ID = (SELECT UENCID FROM ENCUESTADOS WHERE UENCNOMBRE ='$username') AND ENRID =$id")->queryScalar()=="")
                throw new CHttpException(400, Yii::t('err', 'No está autorizado para realizar esta opción'));
        
        $this->performAjaxValidation($model, 'encuestasrespuestas-form');

        if (isset($_POST['Encuestasrespuestas'])) {
            $model->setAttributes($_POST['Encuestasrespuestas']);

            if ($model->save()) {
                $this->redirect(array('view', 'id' => $model->ENRID));
            }
        }
        
        $roluser = Yii::app()->user->getState('rol');
        
        $baseUrl = Yii::app()->baseUrl;
        $cs = Yii::app()->getClientScript();
        $cs->registerCssFile($baseUrl . '/js/chosen/chosen.css');
        $cs->registerScriptFile($baseUrl . '/js/chosen/chosen.jquery.min.js');
        $cs->registerScriptFile($baseUrl . '/js/jquery.meio.mask.min.js');
        $cs->registerScriptFile($baseUrl . '/js/jquery.metadata.js');
        $cs->registerScriptFile($baseUrl . '/js/jquery.validate.min.js');
        $cs->registerScriptFile($baseUrl . '/js/egresados.js');
        $cs->registerScriptFile($baseUrl . '/js/validator_egresados.js');
        //$cs->registerCssFile($baseUrl . '/css/prettyPhoto.css');
        //$cs->registerScriptFile($baseUrl . '/js/jquery.prettyPhoto.js');
        $cs->registerCssFile($baseUrl . '/css/egresados.css');
        $cs->registerScriptFile($baseUrl . '/js/jquery.scrollTo.js');
        $cs->registerScript('Abandonar','window.onbeforeunload  = unloadPage;function unloadPage(){return "Esta seguro que desea salir ?";}');
        if ($roluser != "admin") {
            $this->menu = array();
            $cs->registerScript('eliminar-div', '$(".span-5").remove();
                $(".span-16").css("width","100%")', CClientScript::POS_END
            );
        }
        
        $this->render('update', array(
            'model' => $model,
        ));
        
    }

    public function actionDelete($id) {
        if (Yii::app()->getRequest()->getIsPostRequest()) {
            $this->loadModel($id, 'Encuestasrespuestas')->delete();

            if (!Yii::app()->getRequest()->getIsAjaxRequest())
                $this->redirect(array('admin'));
        } else
            throw new CHttpException(400, Yii::t('app', 'Your request is invalid.'));
    }

    public function actionIndex() {
        $dataProvider = new CActiveDataProvider('Encuestasrespuestas');
        $this->render('index', array(
            'dataProvider' => $dataProvider,
        ));
    }

    public function actionAdmin() {
        $model = new Encuestasrespuestas('search');
        $model->unsetAttributes();

        if (isset($_GET['Encuestasrespuestas']))
            $model->setAttributes($_GET['Encuestasrespuestas']);

        $this->render('admin', array(
            'model' => $model,
        ));
    }
    
    public function clase_campos($tipo){
            switch ($tipo) {
                case 1:
                    return "dinamicmultadd";
                    break;
                default;
                    return "dinamic";
                    break;
            }
    }
    
    public function valores_vista($idcampo, $Arreglo) {
            if (count($Arreglo)==0)
                return "";
            
            switch ($idcampo) {
                case 31:
                    if (is_array($Arreglo)) {
                        $valor = array_values($Arreglo);
                        return $valor[0];
                    }
                    break;
                case 41:
                    if (is_array($Arreglo)) {
                        $valor = array_values($Arreglo);
                        return $valor[1];
                    }
                    break;
                case 24:
                    if (is_array($Arreglo)) {
                        $valor = array_values($Arreglo);
                        return $valor[2];
                    }
                    break;
                case 43:
                    if (is_array($Arreglo)) {
                        $valor = array_values($Arreglo);
                        return $valor[3];
                    }
                    break;
                case 51:
                    if (is_array($Arreglo)) {
                        $valor = array_values($Arreglo);
                        return $valor[4];
                    }
                    break;
                case 45:
                    if (is_array($Arreglo)) {
                        $valor = array_values($Arreglo);
                        return $valor[5];
                    }
                    break;
                case 49:
                    if (is_array($Arreglo)) {
                        $valor = array_values($Arreglo);
                        return $valor[6];
                    }
                    break;
               case 801:
                    if (is_array($Arreglo)) {
                        $valor = array_values($Arreglo);
                        return $valor[7];
                    }
                    break;
               case 28 :
                   if (is_array($Arreglo)) {
                        $valor = array_values($Arreglo);
                        return $valor[8];
                    }
                    break;
               case 27 :
                   if (is_array($Arreglo)) {
                        $valor = array_values($Arreglo);
                        return $valor[9];
                    }
                    break;
               case 25 :
                   if (is_array($Arreglo)) {
                        $valor = array_values($Arreglo);
                        return $valor[10];
                    }
                    break;
            }
            return "";
        }
        
    public function clase_tipos_datos($tipo){
            switch ($tipo) {
                case 1:
                    return "Ctexto";
                    break;
                case 2:
                    return "Cnumero number";
                    break;
                case 3:
                    return "Cfecha";
                    break;
                case 4:
                    return "Ccombo";
                    break;
                case 5:
                    return "Ctexto email";
                    break;
            }
            return "";
        }
        
    public function obtiene_campo($tipocampo, $tipodato, $idcampo, $idalias, $nombre, $requerido, $help, $logitud, $valores="", $valAdd="", $valmuni="", $valdpt="", $idRespuesta="", $idMod="", $ValVistaArray="", $Establa = "", $filaini="", $labelinvisible="", $registro="", $grupo="", $ReadOnly = "") {
            $titulotabla = "";
            $clasefilas = "Rfilas";
            $classfield = $this->clase_campos($idMod);
            
            if($idMod == 1)
                $controlAddicional = "-$registro-$grupo";
            else
                $controlAddicional = "";
            
            $idcontrol = 'id="id_alias_campo_'.$idalias.$controlAddicional.'"';
            $namecontrol = 'name="name_alias_campo_'.$idalias.$controlAddicional.'"';
            
            if ($requerido == 1 && $idMod != 1){
                $classAdd = " required";
                $addreq = "validate=\"required:true\"";
                $addreqRadio = "validate=\"required:true\"";
            }elseif($requerido == 1 && $idMod == 1){
                $classAdd = " requiredMult";
                $addreq = "";
                $classfield .= " requiredMult";
                $addreqRadio = "";
            }else{
                $classAdd = "";
                $addreq = "";
                $addreqRadio = "";
            }

            if (is_numeric($idRespuesta))
                $tipo = 'tipo="U"';
            else {
                $tipo = 'tipo="I"';
                $valReturn = $this->valores_vista($idcampo, $ValVistaArray);
                if ($valReturn != "")
                    $valores = $valReturn;
            }
            
            $clase = $this->clase_tipos_datos($tipodato) . $classAdd;
            
            if ($ReadOnly=="1"){
                if ($tipocampo == 3 || $tipocampo == 4)
                    $ReadOnly = " disabled='disabled'";
                else
                    $ReadOnly = " readonly='readonly'";
            }else
                $ReadOnly = "";
            
            switch ($tipocampo) {
                case 1:
                    //INPUTS TEXTO
                    $campo = "<div class='control'><input type='text' $idcontrol $namecontrol class='$classfield $clase' maxlength='$logitud' value='$valores' title='$help' $tipo aliasid='$idalias' $ReadOnly /></div>";
                    break;
                case 2:
                    //TEXTAREAS
                    $campo = "<div class='control'><textarea rows='2' cols='20' $idcontrol $namecontrol maxlength='$logitud' class='$classfield Ctextarea' title='$help' $tipo aliasid='$idalias' $ReadOnly >$valores</textarea></div>";
                    break;
                case 3:
                    //SELECTS SENCILLOS    
                    $campo = "<div class='control'><select $idcontrol $namecontrol class='$classfield Ccombo' title='$help' $tipo aliasid='$idalias' $addreq $ReadOnly >";
                    $connection = Yii::app()->db;

                    if ($valdpt == "1")
                        $command = $connection->createCommand("SELECT DPTID, DPTDEPARTAMENTO FROM departamentos ORDER BY 2");
                    elseif ($valmuni == "1" && $valAdd != "")
                        $command = $connection->createCommand("SELECT MPOID, MPOMUNICIPIO FROM municipios WHERE DPT_ID=$valAdd ORDER BY 2");
                    else
                        $command = $connection->createCommand("SELECT LISTID, LISTNOMBRE FROM listasdesplegables WHERE cmp_id=$idcampo ORDER BY ORDEN, LISTID");

                    if ($valmuni == "1" && $valAdd == "") {
                        $campo .= "<option value=''></option>";
                        $campo .="</select></div>";
                        break;
                    }
                    $results = $command->queryAll();
                    
                    $campo .= "<option value=''></option>";
                    foreach ($results as $rows) {
                        $valor = array_values($rows);
                        if ($valor[0] == $valores)
                            $campo .="<option value='$valor[0]' selected='selected'>$valor[1]</option>";
                        else
                            $campo .="<option value='$valor[0]'>$valor[1]</option>";
                    }
                    $campo .="</select></div>";
                    break;
                case 4:
                    //SELECTS MULTIPLES
                    $campo = "<div class='control'><select multiple='multiple' $idcontrol $namecontrol class='$classfield $clase' title='$help' $tipo aliasid='$idalias' $ReadOnly >";
                    $results = Yii::app()->db->createCommand("SELECT LISTID, LISTNOMBRE FROM listasdesplegables WHERE cmp_id=$idcampo ORDER BY ORDEN, LISTID")->queryAll();
                    foreach ($results as $rows) {
                        $valor = array_values($rows);
                        //$valor DEFINIR VALORES SELECCIONADOS
                        $MultVal = explode(",", $valores);
                        if (is_numeric(array_search($valor[0], $MultVal)))
                            $campo .="<option value='$valor[0]' selected='selected'>$valor[1]</option>";
                        else
                            $campo .="<option value='$valor[0]'>$valor[1]</option>";
                    }
                    $campo .="</select></div>";
                    break;
                case 5:
                    //RADIOS
                    $campo = "<div $idcontrol $namecontrol class='$classfield Cradios' title='$help' $tipo aliasid='$idalias' fielddiv='true' >";
                    $results = Yii::app()->db->createCommand("SELECT LISTID, LISTNOMBRE FROM listasdesplegables WHERE cmp_id=$idcampo ORDER BY ORDEN, LISTID")->queryAll();
                    
                    if ($Establa!=1)
                        $claseradio="radio";
                    else{
                        $claseradio= "radiotabla";
                        $campo .= "<div class='radiotablaini'><label for='id_alias_campo_$idalias' class='label_info' >$nombre</label></div>";
                    }
                    
                    if( $filaini == 1 )
                        $titulotabla = "<div class='$clasefilas'><div class='col_tituloini'>&nbsp</div>";
                    
                    foreach ($results as $rows) {
                        $valor = array_values($rows);
                        
                        if( $filaini == 1 )
                            $titulotabla .= "<div class='col_titulo'>$valor[1]</div>";
                            
                        $campo .= "<div class='$claseradio'>";
                        if ($valor[0] == $valores){
                            $campo .= "<input type='radio' class='inputradio' id='id_radios_alias_campo_$idalias-$valor[0]".$controlAddicional."' name='name_alias_campo_$idalias".$controlAddicional."' value='$valor[0]' checked='checked' $addreqRadio title='$help' $ReadOnly />";                               
                        }else{
                            $campo .= "<input type='radio' class='inputradio' id='id_radios_alias_campo_$idalias-$valor[0]".$controlAddicional."' name='name_alias_campo_$idalias".$controlAddicional."' value='$valor[0]'  $addreqRadio  title='$help' $ReadOnly />";
                        }
                        if ($Establa!=1)
                            $campo .= "<label class='labelradio' for ='id_alias_campo_$idalias-$valor[0]'>$valor[1]</label>";
                        
                        $campo .= "</div>";
                    }
                    $campo .="</div>";
                    if( $filaini == 1 )
                        $titulotabla .= "</div>";
                    break;
                case 6:
                    //CHECKS
                    $campo = "<div $idcontrol $namecontrol class='$classfield Cchecked' title='$help' $tipo aliasid='$idalias' fielddiv='true' >";
                    $results = Yii::app()->db->createCommand("SELECT LISTID, LISTNOMBRE FROM listasdesplegables WHERE cmp_id=$idcampo ORDER BY ORDEN, LISTID")->queryAll();
                    
                    if ($Establa!=1)
                        $clasechecked="checked";
                    else{
                        $clasechecked= "checkedtabla";
                        $campo .= "<div class='checktablaini'><label for='id_alias_campo_$idalias' class='label_info' >$nombre</label></div>";
                    }
                    
                    if( $filaini == 1 )
                        $titulotabla = "<div class='$clasefilas'><div class='col_tituloini'>&nbsp</div>";
                    
                    foreach ($results as $rows) {
                        $valor = array_values($rows);

                        $MultVal = explode(",", $valores);
                        
                        if( $filaini == 1 )
                            $titulotabla .= "<div class='col_titulo'>$valor[1]</div>";
                        
                        $campo .= "<div class='$clasechecked'>";
                        if (is_numeric(array_search($valor[0], $MultVal)))
                            $campo .= "<input class='input inputchecked' type='checkbox' id='id_checks_alias_campo_$idalias-$valor[0]".$controlAddicional."' name='name_alias_campo_$idalias-$valor[0]".$controlAddicional."' value='$valor[0]' checked='checked' $addreqRadio title='$help' $ReadOnly />";
                        else
                            $campo .= "<input class='input inputchecked' type='checkbox' id='id_checks_alias_campo_$idalias-$valor[0]".$controlAddicional."' name='name_alias_campo_$idalias-$valor[0]".$controlAddicional."' value='$valor[0]' $addreqRadio title='$help' $ReadOnly />";
                        
                        if ($Establa!=1)
                            $campo .= "<label class='labelchecked' for='id_alias_campo_$idalias-$valor[0]'>$valor[1]</label>";
                        
                        $campo .= "</div>";
                    }
                    $campo .="</div>";
                    
                    if( $filaini == 1 )
                        $titulotabla .= "</div>";
                    break;
            }
            
            if ($Establa==1){
                $label = "";
                $campo  .= "<hr class='hr_tablas'/>";
            }else if ($labelinvisible != "1") {
                if ($requerido == 1 && $idMod != 1)
                    $label = "<div class='label'><label for='id_alias_campo_$idalias' class='label_info' >$nombre <span class='required'>*</span></label></div>";
                else
                    $label = "<div class='label'><label for='id_alias_campo_$idalias' class='label_info' >$nombre</label></div>";
            }else
                $label = "";
            
            if ($idMod != "1")
                return $titulotabla . "\n<div class='$clasefilas'>" . $label . $campo . "</div>\n";
            else
                return $titulotabla . $label.  $campo;
    }
        
    public function obtiene_multiples_formularios($grupoId, $idEr, $arraytablasini, $arraytablasfin, $divtabla ="", $arraytablassimples = ""){
            $valor="";
            $Establa="";
            if ($divtabla!="")
                $campo="";
            else
                $campo="<div class='multiple_grp_$grupoId'>";
            
            $ModalCampos = "";
            //CREAR LOS CAMPOS DE ENTRADA INICIALES
            $sql = "SELECT ca.cmpid, ca.tcmp_id, ca.tdt_id, al.alsid, al.alsnombre, al.alsayuda, al.alsobligatorio, 
                ca.CMP_LONGITUD, ca.CMPMUNICIPIO, ca.CMPDEPARTAMENTO
                , ca.GRP_ID, al.LABELVISIBLE, al.SOLOLECTURA FROM campos ca 
                join alias al on ca.cmpid=al.cmp_id
                join nucleosbasicosalias nab on al.alsid=nab.als_id
                join modulos modu on nab.mod_id=modu.modid
                WHERE ca.GRP_ID = $grupoId and nab.NCLB_ID in (SELECT E.NCLB_ID FROM ENCUESTAS E JOIN ENCUESTASRESPUESTAS ER ON E.ENCID=ER.ENC_ID WHERE ER.ENRID=$idEr)
                ORDER BY modu.modorden, nab.orden, ca.GRP_ID";
            
            $connection = Yii::app()->db;
            $results = $connection->createCommand($sql)->queryAll();
            foreach ($results as $rows) {
                    $valor = array_values($rows);
                    //construye tabla
                    if (is_numeric(array_search($valor[3], $arraytablasini))){
                       $clasetabla= "tabla-dinamic";
                       if (is_numeric(array_search($valor[3], $arraytablassimples))){
                           $clasetabla ="tabla-dinamic-simple";
                       }
                       $ModalCampos .= "<div class='$clasetabla'>";
                       $campotablaini = 1;
                       $Establa = 1;
                    }
                    else
                        $campotablaini = "";
                    
                    $ModalCampos .= "\n<div class='reg-multi form-multiple'>" . $this->obtiene_campo($valor[1], $valor[2], $valor[0], $valor[3], $valor[4], $valor[6], $valor[5], $valor[7], "", "", $valor[8], $valor[9], "", "1", "", $Establa, $campotablaini, $valor[11], 0, $grupoId, $valor[12]) . "</div>\n";
            
                    //finaliza tabla
                    if (is_numeric(array_search($valor[3], $arraytablasfin))){
                        $ModalCampos .= "</div>";
                        $Establa = "";
                    }
            }
            if ($ModalCampos != "") {
                $campo .= "\n<div id='registro_add_0-$grupoId' class='registros form-multiple'>\n". $ModalCampos;
                $campo .= "\n<div class='botonaddgrp'><input type='image' class='add_input envio_multi_grupos' id='guardar_0-$grupoId' name='guardar_0-$grupoId' title='Guardar Registro' grupo='$grupoId' registro='0' divpadre='registro_add_0-$grupoId' onclick='Guardar_Multiples_Adiccional(\"registro_add_0-$grupoId\",$grupoId,0); return false;' /></div>\n";
                $campo .= "\n</div>\n";
            }
            
            $Establa = "";
            //CONSULTAR REGISTROS MUCHOS A MUCHOS
            $sql = "SELECT ca.cmpid, ca.tcmp_id, ca.tdt_id, al.alsid, al.alsnombre, al.alsayuda, al.alsobligatorio,
                    ca.CMP_LONGITUD, ca.CMPMUNICIPIO, ca.CMPDEPARTAMENTO, ca.GRP_ID, al.LABELVISIBLE, rm.resmdescripcionmin, 
                    rm.RESMREGISTRO, al.SOLOLECTURA FROM campos ca 
                    join alias al on ca.cmpid=al.cmp_id
                    join nucleosbasicosalias nba on nba.als_id = al.alsid
                    join respuestasmultiples rm on al.alsid=rm.als_id
                    WHERE rm.grp_id=$grupoId and rm.enr_id=$idEr and nba.NCLB_ID in (SELECT E.NCLB_ID FROM ENCUESTAS E JOIN ENCUESTASRESPUESTAS ER ON E.ENCID=ER.ENC_ID WHERE ER.ENRID=$idEr)
                    ORDER BY rm.resmregistro, nba.orden";
            //CREAR CAMPOS EDITABLES
            $results2 = $connection->createCommand($sql)->queryAll();
            $ModalCampos = "";
            $regActual = "";
            unset ($valor);
            foreach ($results2 as $rows2){
                $valor = array_values($rows2);
                $reg = $valor[13];
                                    
                if ($regActual == "")
                    $regActual = $reg;
                
                if ($reg != $regActual) {
                    $campo .= "\n<div id='registro_add_$regActual-$grupoId' class='registros form-multiple-act'>\n" . $ModalCampos;
                    $campo .= "\n<div class='botonaddgrp'><input type='image' class='add_input envio_multi_grupos' id='guardar_$regActual-$grupoId' name='guardar_$regActual-$grupoId' title='Actualizar Registro' grupo='$grupoId' registro='$regActual' divpadre='registro_add_$regActual-$grupoId' onclick='Guardar_Multiples_Adiccional(\"registro_add_$regActual-$grupoId\",$grupoId,$regActual);return false;' />\n";
                    $campo .= "\n<input type='image' class='eliminarmadicional' id='eliminar_$regActual-$grupoId' name='eliminar_$regActual-$grupoId' title='Eliminar Registro' grupo='$grupoId' registro='$regActual' divpadre='registro_add_$regActual-$grupoId' onclick='if (confirm(\"Desea eliminar este registro ?\")) {Eliminar_Multiples_Adiccional($grupoId, $regActual);return false};return false;' /></div>\n";
                    $campo .= "\n</div>\n";
                    $ModalCampos = "";
                    $regActual = $reg;
                }
                
                //construye tabla
                if (is_numeric(array_search($valor[3], $arraytablasini))){ 
                   $clasetabla= "tabla-dinamic";
                   if (is_numeric(array_search($valor[3], $arraytablassimples))){
                       $clasetabla ="tabla-dinamic-simple";
                   }
                   $ModalCampos .= "<div class='$clasetabla'>";
                   $campotablaini = 1;
                   $Establa = 1;
                }
                else
                    $campotablaini = "";
                
                $ModalCampos .= "\n<div class='reg-multi-act'>" . $this->obtiene_campo($valor[1], $valor[2], $valor[0], $valor[3], $valor[4], $valor[6], $valor[5], $valor[7], $valor[12], "", $valor[8], $valor[9], 0, "1", "", $Establa, $campotablaini, $valor[11], $reg, $grupoId, $valor[14]) . "</div>\n";
                //finaliza tabla
                if (is_numeric(array_search($valor[3], $arraytablasfin))){
                    $ModalCampos .= "</div>";
                    $Establa = "";
                }
            }
            if ($ModalCampos != "") {
                $campo .= "\n<div id='registro_add_$reg-$grupoId' class='registros form-multiple-act'>\n" . $ModalCampos;
                $campo .= "\n<div class='botonaddgrp'><input type='image' class='add_input envio_multi_grupos' id='guardar_$reg-$grupoId' name='guardar_add_$reg-$grupoId' grupo='$grupoId' value='Actualizar Registro' registro='$reg' divpadre='registro_add_$reg-$grupoId' onclick='Guardar_Multiples_Adiccional(\"registro_add_$regActual-$grupoId\",$grupoId,$regActual);return false;' />\n";
                $campo .= "\n<input type='image' class='eliminarmadicional' id='eliminar_$regActual-$grupoId' name='eliminar_$reg-$grupoId' value='Eliminar Registro' grupo='$grupoId' registro='$reg' onclick='if (confirm(\"Desea eliminar este registro ?\")) {Eliminar_Multiples_Adiccional($grupoId, $reg)};return false;' /></div>\n";
                $campo .= "\n</div>\n";
            }
            if ($divtabla=="")
                $campo .= "</div>";
            
            return $campo;
        }

    public function nucleos_especificos($docId, $idEr, $CodPrograma, $arraytablasini, $arraytablasfin, $arraytablassimples){
            $band=false;
            $valAdd="";
            $Establa = "";
            echo "<div id='tabs-ne'>"; 
            echo "<form id='fieldsetNE' class='validate' method='get' action='#' modulo='12' >\n";
            $sql="select ca.cmpid, ca.tcmp_id, ca.tdt_id, al.alsid, al.alsnombre, al.alsayuda, al.alsobligatorio, nea.orden, modu.modid,
                modu.modnombre, modu.modorden, ne.nclenombre, mom.momnombre, mom.mompostgrado, mom.mompregrado, mom.momestado, 
                enc.encnombre, enc.encversion, enc.encfechainicial, enc.encfechafinal, (select resdescripcionmin from respuestas where als_id=al.alsid AND ENR_ID=ecr.ENRID ) as resp, 
                ca.CMP_LONGITUD, ca.CMPMUNICIPIO, ca.CMPDEPARTAMENTO, (select RESID from respuestas where als_id=al.alsid AND ENR_ID=ecr.ENRID ) as respid 
                , ca.GRP_ID, al.LABELVISIBLE, al.SOLOLECTURA from campos ca 
                join alias al on ca.cmpid=al.cmp_id 
                join nucleosespecificosalias nea on al.alsid=nea.als_id
                join modulos modu on nea.mod_id=modu.modid
                join nucleosespecificos ne on nea.ncle_id=ne.ncleid
                join momentos mom on ne.mom_id=mom.momid
                join nucleosespecificosencuestas nee on nee.ncle_id=ne.ncleid
                join encuestas enc on nee.enc_id=enc.encid
                join encuestasrespuestas ecr on enc.encid=ecr.enc_id
                join encuestados usu on ecr.encu_id= usu.uencid
                join programas pro on ne.prg_id=pro.prgid
                WHERE ecr.enrid=$idEr AND nea.mod_id=12 AND pro.prgcodigo='$CodPrograma'
                ORDER BY modu.modorden, nea.orden";
            
            $connection = Yii::app()->db;
            $command = $connection->createCommand($sql);
            $results = $command->queryAll();
            foreach ($results as $rows) {
                $valor = array_values($rows);
                
                if (is_numeric(array_search($valor[3], $arraytablasini))){
                   $clasetabla= "tabla-dinamic";
                   if (is_numeric(array_search($valor[3], $arraytablassimples))){
                       $clasetabla ="tabla-dinamic-simple";
                   }
                   echo "<div class='$clasetabla'>";
                   $campotablaini = 1;
                   $Establa = 1;
                }
                else
                    $campotablaini = "";
                
                echo "\n" . $this->obtiene_campo($valor[1], $valor[2], $valor[0], $valor[3], $valor[4], $valor[6], $valor[5], $valor[21], $valor[20], $valAdd, $valor[22], $valor[23], $valor[24], "0", "", $Establa, $campotablaini, $valor[26], "", "", $valor[27]) . "\n";
                $band=true;
                
                 //finaliza tabla
                if (is_numeric(array_search($valor[3], $arraytablasfin))){
                        echo "</div>";
                        $Establa = "";
                }
            }
            if ($band==true)
                echo "\n<div class='boton'><input type='submit' class='submit' id='guardar_ne' name='guardar_ne' value='Guardar Núcleos Específicos' /></div>\n";
            
            echo "\n</form>\n";
            echo "\n</div>";
    }

    public function obtiene_ciudad_sede($idsede){
            $sede="";
            switch ($idsede){
                case 'siabta':
                    $sede="Bogotá";
                    break;
                case 'siacar':
                    $sede="Cartagena";
                    break;
                case 'sialet':
                    $sede="Leticia";
                    break;
                case 'siaman':
                    $sede="Manizales";
                    break;
                case 'siamed':
                    $sede="Medellin";
                    break;
                case 'siaori':
                    $sede="Orinoco";
                    break;
                case 'siapal':
                    $sede="Palmira";
                    break;
            }
            return $sede;
        }

    public function label_adiccional($campoId) {
            switch ($campoId) {
                case 67:
                    return "<div class='labelnota'><label for='label_adicional_nota_$campoId' class='label_info_nota' >
                    Nota: La información laboral que se solicita en el resto de este módulo hace referencia al trabajo más importante
                    </label></div>";
                    break;
                case 93:
                    return "<div class='labeladd mod4'><label for='label_adicional_$campoId' class='label_info_add' >
                    Pregrado(s)
                    </label></div>";
                    break;
                case 175:
                    return "<div class='labeladd mod4'><label for='label_adicional_$campoId' class='label_info_add' >
                    Posgrado(s)
                    </label></div>";
                    break;
            }
            return "";
        }
        
    public function actionconsultaformulariosgrupos($grp, $enr, $enc){
            $arraytablasini = array();
            $arraytablasfin = array();
            $arraytablassimples = array();
            $resultstablas = Yii::app()->db->createCommand("SELECT INI_ALS_ID, FIN_ALS_ID, SIMPLE FROM ALIAS_TABLAS WHERE ENC_ID=$enc")->queryAll();
            foreach ($resultstablas as $rowstablas) {
                $rowsresult = array_values($rowstablas);
                $arraytablasini[]=$rowsresult[0];
                $arraytablasfin[]=$rowsresult[1];
                if ($rowsresult[2] == "1")
                    $arraytablassimples[]=$rowsresult[0];
            }
            echo $this->obtiene_multiples_formularios($grp,$enr,$arraytablasini,$arraytablasfin,1,$arraytablassimples);
    }
    
    public function genera_tabs($CountMod,$modulosArray,$NoModTab){
        $script = "function habilita_tabs() {\n";
        $scriptacordiones = "\n\nfunction habilita_acordiones() {\n";
        $tempflujos="";
        $modulesavaibles = count($modulosArray);
        $valores = array_values($modulosArray);
        $nTabs = intval($CountMod / $NoModTab);
        $i=0;
        if (($CountMod % $NoModTab) != 0)
            $nTabs += 1;
        
        $script .= "$('#tabs').tabs({ disabled: [". $this->enum_tabs($nTabs) ."] });\n\n";
        $scriptacordiones .= "var arrayacordiones = [0];\n\n";
        
        for ($z = 1; $z <= $nTabs; $z++) {
            $script .="if(";
            for ($m = 1 ; $m <= $NoModTab; $m++){
                if ($i < $modulesavaibles){
                    $tempflujos .= "$('". $valores[$i] .' .dinamic[tipo="U"], ' . $valores[$i] . ' .dinamicmultadd[tipo="U"]'. "').length > 0" . " && ";
                    $scriptacordiones .= "if ($('". $valores[$i] .' .dinamic[tipo="U"], ' . $valores[$i] . ' .dinamicmultadd[tipo="U"]' . "').length > 0) arrayacordiones.push(". ($i + 1) . ");\n";
                }
                $i++;
            }
            $script .=  substr($tempflujos,0,strlen($tempflujos)-4) . ")\n";
            //disable->
            $script .= "$('#tabs').tabs({ disabled: [". $this->enum_tabs($nTabs, $z+1) ."] });\n\n";
            $tempflujos="";
        }
        
        $script .= "}";
        $scriptacordiones .= "\nreturn arrayacordiones;\n}";
        $cs = Yii::app()->getClientScript();
        $cs->registerScript('genera-tab', $script . $scriptacordiones
                , CClientScript::POS_END
        );
    }
    
    public function enum_tabs($ntabs,$inicio=1){
        $valores ="";
        if ($inicio>$ntabs)
            return "";
        for ($z = $inicio; $z <= $ntabs; $z++) {
            $valores .= $z . ",";
        }
        return substr($valores,0,strlen($valores)- 1);
    }
}